package com.rc.saas.tenant.service.acct;

import com.github.pagehelper.PageInfo;
import com.rc.saas.tenant.base.BaseService;
import com.rc.saas.tenant.common.vo.TResponse;
import com.rc.saas.tenant.mapper.acct.AcctWithdrawApplyMapper;
import com.rc.saas.tenant.model.acct.AcctWithdrawApply;
import com.rc.saas.tenant.model.acct.AcctWithdrawApplyExample;
import com.rc.saas.tenant.search.acct.AcctWithdrawApplySearch;
import com.rc.saas.tenant.vo.acct.AcctWithdrawApplyResult;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author frog
 * @date 2021/1/25
 */
public interface AcctWithdrawApplyService extends BaseService<Long, AcctWithdrawApply, AcctWithdrawApplyExample, AcctWithdrawApplyMapper> {
    PageInfo<AcctWithdrawApplyResult> listPageAcctWithdrawApply(AcctWithdrawApplySearch acctBankSearch);

    AcctWithdrawApplyResult selectAcctWithdrawApply(Long withdrawApplyId);

    TResponse saveAcctWithdrawApply(AcctWithdrawApply apply, List<Long> orderIds, List<String> invoicePathList);

    List<AcctWithdrawApplyResult> listExportAcctWithdrawApply(AcctWithdrawApplySearch acctWithdrawApplySearch);

    void updateStatusForFail(AcctWithdrawApply acctWithdrawApply);

    BigDecimal sumWithdrawWaitAmount(String tenantOperatorCode);

    int countByNotReviewedWithdrowApplyOrder(String tenantCode);

    int countByNotPaidOrder(String tenantCode);
}
